A central processing unit (CPU) cache locally stores data from a main memory (e.g., a volatile memory device, a non-volatile memory device, etc.). Caches are often implemented using volatile memory to store data when powered and lose memory state when power is removed. Accordingly, data in a cache is typically lost or deemed unreliable in the event of a system shut down or power failure.
A CPU uses cache to increase the speed of data operations because accessing data in cache is much faster than performing read and/or write operations in main memory. For example, a CPU retrieves data from non-volatile main memory and stores the retrieved data in a cache line (e.g., 64 bytes of data) of the cache when the data is to be used, edited, manipulated, etc. via read and/or write operations. If the data is modified in the cache, then it is eventually written back to main memory. After modifying the data in the cache line, but before the modified data is written back from the cache to the main memory, the cache line storing the modified data is considered a dirty cache line. Dirty cache lines and/or other cache lines may be written back (e.g., flushed) to main memory (e.g., a volatile memory, non-volatile memory, etc.) when instructed by the CPU. Dirty cache lines may also be written back without an explicit software instruction to do so when the CPU requires the cache line space in the cache for other purposes.